package com.mt.restaurant.service.staff;

import com.mt.common.core.web.JsonResult;
import com.mt.common.core.web.base.PageDTO;
import com.mt.common.core.web.base.PageResultDTO;
import com.mt.restaurant.entity.staff.Staff;

import java.util.List;

public interface StaffService {
    /**
     * 根据分页参数查询员工集合
     *
     * @param pageDTO 分页条件
     */
    public PageResultDTO findStaffs(PageDTO pageDTO);

    /**
     * 查询全部员工集合
     *
     */
    public List<Staff> findAllStaffs();

    /**
     * 根据名称查询员工集合(只提取ID 和 Name)
     *
     * @param staffName 名称
     */
    public List<Staff> findStaffsWithIdNameByName(String staffName);

    /**
     * 查询所有员工集合(只提取ID 和 Name)
     *
     */
    public List<Staff> findAllStaffsWithIdName();

    /**
     * 根据ID查询指定的员工(只提取ID 和 Name)
     *
     * @param staffId Id
     */
    public Staff findStaffsWithIdNameById(Long staffId);

    /**
     * 根据ID查询指定的员工
     *
     * @param staffId Id
     */
    public Staff findStaff(Long staffId);

    /**
     * 根据ID查询指定的员工(包含外键)
     *
     * @param staffId Id
     */
    public Staff findStaffWithForeignName(Long staffId);

    /**
     * 新增员工
     *
     * @param staff 实体对象
     */
    public Staff saveStaff(Staff staff);

    /**
     * 更新员工
     *
     * @param staff 实体对象
     */
    public Staff updateStaff(Staff staff);

    /**
     * 根据ID删除员工
     *
     * @param staffId ID
     */
    public void deleteStaff(Long staffId);

    JsonResult generateUser(List<Staff> staffs);
}
